package com.xbongbong.paas.service;

import com.xbongbong.paas.pojo.dto.CallAccountRegisterDTO;
import com.xbongbong.paas.pojo.dto.CallCenterAdminLoginDTO;
import com.xbongbong.paas.pojo.dto.CallEnableAudioTranslateDTO;
import com.xbongbong.paas.pojo.dto.CallGetDepUserListDTO;
import com.xbongbong.paas.pojo.dto.CallOrgRegisterDTO;
import com.xbongbong.paas.pojo.dto.CallOrganizationStatusDTO;
import com.xbongbong.paas.pojo.dto.CallStatementListDTO;
import com.xbongbong.paas.pojo.vo.CallAccountRegisterVO;
import com.xbongbong.paas.pojo.vo.CallCenterAdminLoginVO;
import com.xbongbong.paas.pojo.vo.CallEnableAudioTranslateVO;
import com.xbongbong.paas.pojo.vo.CallGetDepUserListVO;
import com.xbongbong.paas.pojo.vo.CallOrgRegisterVO;
import com.xbongbong.paas.pojo.vo.CallOrganizationStatusVO;
import com.xbongbong.paas.pojo.vo.CallStatementListVO;
import com.xbongbong.paas.toolbox.exception.XbbException;
import com.xbongbong.paas.toolbox.wrap.XbbResponse;

/**
 * @author youli.chen
 * @version v1.0
 * @description: 话务中心 管理 业务层接口
 * @date 2019/2/16 21:11
 * @since v1.0
 */
public interface CallCenterAdminService {

    /**
     * 管理员CFG一键登录获取token
     *
     * @param callCenterAdminLoginDTO 管理员CFG一键登录获取token入参
     * @return CallCenterAdminLoginVO
     * @throws XbbException 业务异常
     */
    XbbResponse<CallCenterAdminLoginVO> login(CallCenterAdminLoginDTO callCenterAdminLoginDTO) throws XbbException;

    /**
     * 企业注册
     *
     * @param callOrgRegisterDTO 企业注册入参
     * @return CallOrgRegisterVO
     * @throws XbbException 业务异常
     */
    XbbResponse<CallOrgRegisterVO> organizationRegister(CallOrgRegisterDTO callOrgRegisterDTO) throws XbbException;

    /**
     * 员工账号注册
     *
     * @param callAccountRegisterDTO 员工账号注册入参
     * @return CallAccountRegisterVO
     * @throws XbbException 业务异常
     */
    XbbResponse<CallAccountRegisterVO> accountRegister(CallAccountRegisterDTO callAccountRegisterDTO) throws XbbException;

    /**
     * 获取企业的坐席数量、通话时间等消费信息
     *
     * @param callOrganizationStatusDTO 获取企业的坐席数量、通话时间等消费信息入参
     * @return CallOrganizationStatusVO  获取企业的坐席数量、通话时间等消费信息回参
     * @throws XbbException 业务异常
     */
    XbbResponse<CallOrganizationStatusVO> organizationStatus(CallOrganizationStatusDTO callOrganizationStatusDTO) throws XbbException;

    /**
     * 获取部门的员工列表
     *
     * @param callGetDepUserListDTO 获取部门的员工列表入参
     * @return CallGetDepUserListVO  获取部门的员工列表回参
     * @throws XbbException 业务异常
     */
    XbbResponse<CallGetDepUserListVO> getDepUserList(CallGetDepUserListDTO callGetDepUserListDTO) throws XbbException;

    /**
     * 查找坐席费用明细
     *
     * @param callStatementListDTO 查找坐席费用明细入参
     * @return CallStatementListVO  查找坐席费用明细回参
     * @throws XbbException 业务异常
     */
    XbbResponse<CallStatementListVO> statementList(CallStatementListDTO callStatementListDTO) throws XbbException;

    /**
     * 是否允许公司使用话务中心的翻译功能
     *
     * @param callEnableAudioTranslateDTO 是否允许公司使用话务中心的翻译功能入参
     * @return CallEnableAudioTranslateVO  是否允许公司使用话务中心的翻译功能回参
     * @throws XbbException 业务异常
     */
    XbbResponse<CallEnableAudioTranslateVO> enableAudioTranslate(CallEnableAudioTranslateDTO callEnableAudioTranslateDTO) throws XbbException;
}
